#include "My_Button.h"



/*定义队列返回变量*/
// xQueueHandle gpio_evt_queue = NULL;


static const char *TAG = "GPIO_Button.CPP";


GPIO_Button::GPIO_Button(uint8_t IO_Num)
{
    _IO_Num = IO_Num;
    gpio_config_t   gpio;               //GPIO结构体

    gpio.pin_bit_mask = (1 << _IO_Num);        //GPIO口
    gpio.intr_type = GPIO_INTR_DISABLE;           //中断
    gpio.mode = GPIO_MODE_INPUT;           //输入/输出模式
    gpio.pull_up_en = GPIO_PULLUP_ENABLE;        //上拉
    gpio.pull_down_en = GPIO_PULLDOWN_DISABLE;    //下拉

    gpio_config(&gpio); //设置GPIO配置
    ESP_LOGI(TAG,"\nGPIO_Init OK!\n");
}

bool GPIO_Button::Get_Level()
{
    return gpio_get_level((gpio_num_t)_IO_Num);
}

bool GPIO_Button::Press_Switch()
{
    if(!gpio_get_level((gpio_num_t)_IO_Num))
    {
        vTaskDelay(30 / portTICK_RATE_MS);
        if(!gpio_get_level((gpio_num_t)_IO_Num)) return true;
        else return false;
    }
    else return false;
    
}


